#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QLabel>
#include <QDialog>
#include <QPushButton>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);


}

MainWindow::~MainWindow()
{
    delete ui;
}

/**
 * @brief MainWindow::on_pushButton_clicked
 *
 * 按钮的点击事件的槽函数，槽函数也可以像像普通函数进行调用
 *
 */
void MainWindow::on_pushButton_clicked()
{
    lb.setText("aaaa");
    // lb.setParent(this);
    lb.resize(200,35);
    // lb.move(10,10);
    lb.show();
}

void MainWindow::on_pushButton_2_clicked()
{
    lb.close();
}

void MainWindow::on_pushButton_3_clicked()
{
    QApplication::quit();
}

void MainWindow::on_horizontalSlider_sliderMoved(int position)
{
    ui->spinBox->setValue(position);
}

void MainWindow::on_spinBox_valueChanged(int arg1)
{
    ui->horizontalSlider->setValue(arg1);
}

void MainWindow::on_pushButton_4_clicked()
{
    QDialog *dg = new QDialog();
    dg->resize(400,400);
    dg->move(200,200);
    dg->show();

    QLabel *lb = new QLabel("我是标签");
    lb->setParent(dg);
    lb->move(50,40);
    lb->resize(100,35);
    lb->show();

    QPushButton *bt = new QPushButton("我是按钮");
    bt->setParent(dg);
    bt->move(200,40);
    bt->resize(100,35);
    bt->show();

    connect(bt,SIGNAL(clicked()),dg,SLOT(close()));



    QPushButton *bt2 = new QPushButton("关闭");
    bt2->setParent(dg);
    bt2->move(300,40);
    bt2->resize(100,35);
    bt2->show();

    // connect(&bt2,SIGNAL(clicked()),&dg,SLOT(close())); // 关闭dialog
    connect(bt2,&QPushButton::clicked,dg,&QDialog::close);

    // 信号和槽的一些注意事项：
    // 1，信号和槽的参数需要一致
    // 2，可带有缺省的参数
    // 3，信号函数的参数可以多于槽函数的参数，多余的参数会被忽略。
    // 4，两个信号直接连接，这种情况使用的比较少
}

